﻿using System.Collections.Generic;

namespace Globsite.Globalization.Mvc.DbResources.Repositories
{
    public abstract class RepositoryBase
    {
        public string ConnectionString { get; set; }
        
        public string ResourceTable { get; set; }

        public bool IgnoreCase { get; set; }

        #region DbResourceManager

        public abstract string GetResource(string resourceKey, string resourceSet, string cultureCode = "");

        public abstract IDictionary<string, string> GetResources(string resourceSet, string cultureCode = "");

        public abstract void SynchronizeResources(IDictionary<string, string> resources, string resourceSet, string cultureCode = "");

        public abstract void AddResource(string resourceKey, string resourceValue, string resourceSet, string cultureCode = "");

        #endregion

        #region T4Template

        public abstract IDictionary<string, IList<string>> GetAllResourceKeys();

        public abstract bool CheckIfResourceTableExists();

        public abstract void CreateResourceTable();

        public abstract void InsertSampleDataToResourceTable();

        #endregion
    }
}
